// import 'dart:async';
// import 'dart:io';
// import 'package:flutter/cupertino.dart';
// import 'package:flutter/material.dart';
// import 'package:flutter/services.dart';
// // import 'package:lib_baseview/lib_baseview.dart';
// // import 'package:lib_runtime/lib_runtime.dart';
// // import 'package:m_chatroom/src/template/music/page/music_upload_confirm_page.dart';
// // import 'package:http_server/http_server.dart';
// // import 'package:lib_basemodel/lib_basemodel.dart';

// import '../model/room_music_center_controller.dart';
// import '../model/room_music_mine_controller.dart';

// ///wifi上传歌曲
// class WifiScreen extends StatefulWidget {
//   const WifiScreen({Key? key}) : super(key: key);

//   @override
//   State<WifiScreen> createState() => _WifiScreenState();
// }

// class _WifiScreenState extends State<WifiScreen> {
//   Server? _server;
//   bool _ok = false;
//   final centerController = Get.find<RoomMusicCenterController>();
//   final mineController = Get.find<RoomMusicMineController>();

//   String? _selectAddress;

//   @override
//   void initState() {
//     super.initState();
//     _init();
//     mineController.musicNeedUpload.clear();
//   }

//   @override
//   void dispose() {
//     if (_server != null) {
//       _server?.stop();
//       _server = null;
//     }
//     super.dispose();
//   }

//   _init() async {
//     _server = Server(_onUpload);
//     await _server?.start();
//     if (mounted) {
//       setState(() {
//         _ok = _server?.ok ?? false;
//         if (_ok) {
//           _selectAddress = _server!.addressList.first;
//         }
//       });
//     }
//   }

//   Future<String> _onUpload(HttpBodyFileUpload upload) async {
//     RLog.d('_onUploadPath:${upload.filename}');
//     int songCode = centerController.localSongCode;
//     String path =
//         centerController.getLocalMusicFilePath(upload.filename, songCode);
//     File file = File(path);
//     if (await file.exists()) {
//       file.deleteSync(recursive: true);
//     }
//     await file.writeAsBytes(upload.content);
//     String filename = file.path.split("/").last;
//     RLog.d('_onUploadPathResult:${file.path}   name:$filename');
//     if (mineController.musicNeedUpload.isNotEmpty) {
//       mineController.musicNeedUpload.add(UploadMusic(path, songCode));
//       mineController.update();
//     } else {
//       mineController.musicNeedUpload.add(UploadMusic(path, songCode));
//       Get.to(() => const MusicUploadConfirmPage(), preventDuplicates: false);
//     }
//     return filename;
//   }

//   @override
//   Widget build(BuildContext context) {
//     return CommonPage(
//       title: '',
//       backgroundColor: Colors.white,
//       body: Container(
//         alignment: Alignment.center,
//         child: Column(
//           crossAxisAlignment: CrossAxisAlignment.center,
//           children: <Widget>[
//             const Spacer(),
//             image('wifi/wifi_loading.webp', width: 120.0, height: 99.0),
//             const SizedBox(
//               height: 46,
//             ),
//             Padding(
//               padding: const EdgeInsetsDirectional.symmetric(horizontal: 16),
//               child: _ok
//                   ? Column(
//                       children: _server!.addressList
//                           .map<Widget>((e) => _buildAddressItem(e))
//                           .toList(),
//                     )
//                   : Container(
//                       height: 36.0,
//                       alignment: Alignment.center,
//                       decoration: const ShapeDecoration(
//                           shape: StadiumBorder(), color: RColors.fafafa),
//                       child: Text(T.current!.no_local_network,
//                           style: JRTextStyles.styleFont14W400
//                               .copyWith(color: RColors.ff666666)),
//                     ),
//             ),
//             const SizedBox(
//               height: 16,
//             ),
//             Padding(
//               padding: const EdgeInsets.symmetric(horizontal: 16),
//               child: Text(
//                 T.current!.open_pc_input_address,
//                 textAlign: TextAlign.center,
//                 style: JRTextStyles.styleFont14W600
//                     .copyWith(color: RColors.textBlack),
//               ),
//             ),
//             const SizedBox(
//               height: 4,
//             ),
//             Padding(
//               padding: const EdgeInsets.symmetric(horizontal: 16),
//               child: Text(
//                 T.current!.pc_phone_same_network,
//                 textAlign: TextAlign.center,
//                 style: JRTextStyles.styleFont12W400
//                     .copyWith(color: RColors.textGuide),
//               ),
//             ),
//             const Spacer(
//               flex: 2,
//             ),
//           ],
//         ),
//       ),
//     );
//   }

//   Widget _buildAddressItem(String address) {
//     bool isSelect = _selectAddress == address;
//     return GestureDetector(
//       onTap: () {
//         Clipboard.setData(ClipboardData(text: address));
//         showToast(T.current!.copied_to_clipboard);
//         if (mounted) {
//           setState(() {
//             _selectAddress = address;
//           });
//         }
//       },
//       child: IntrinsicWidth(
//         child: Container(
//           height: 36.0,
//           padding: const EdgeInsets.symmetric(horizontal: 30),
//           alignment: Alignment.center,
//           margin: const EdgeInsetsDirectional.only(bottom: 8),
//           decoration: const ShapeDecoration(
//               shape: StadiumBorder(), color: RColors.fafafa),
//           child: Stack(
//             alignment: Alignment.center,
//             children: [
//               Padding(
//                 padding: const EdgeInsetsDirectional.only(end: 20),
//                 child: Text(address,
//                     style: JRTextStyles.styleFont14W400.copyWith(
//                         color: isSelect
//                             ? JR.color.mainText
//                             : JR.color.secondaryText)),
//               ),
//               if (isSelect)
//                 const PositionedDirectional(
//                   end: 0,
//                   child: Icon(
//                     Icons.check,
//                     size: 18,
//                     color: Colors.green,
//                   ),
//                 )
//             ],
//           ),
//         ),
//       ),
//     );
//   }
// }
